package com.kaifamiao.handling;

/**
 * 1秒 = 1000毫秒
 * 1毫秒 = 1000微秒
 * 1微秒 = 1000纳秒 (纳秒也称作毫微秒)
 */
public class ExceptionCatch {

    public static void main(String[] args) {
        // System.currentTimeMillis() 获得系统时间(从历元至此所经历的毫秒值)
        // System.nanoTime() 获得从任意指定时刻(一旦确定就固定下来)至此时所经历的 纳秒值
        long begin = System.nanoTime();
        System.out.println( begin );

        try {
            int result = 100 / 0; // 当程序执行至当前行时遭遇特殊情况，JVM就会创建一个相应的异常对象
            // 若上一行遭遇特殊情况，则不再执行后续代码；同时JVM会将异常交给 运行时系统(runtime system)
            // 随后 运行时系统 会 寻找与 该异常 对应的 处理程序 (很幸运，后面找到了 catch 语句块 )
            System.out.println( result ); // 若未发生异常则执行该行代码
        }
        // 运行时系统 找到 与异常对应的 catch 语句块后，就会将 异常对象 传递给 catch 语句块 (就像给方法传参数一样)
        catch ( Exception ex ) {
            System.out.println( ex );
        }

        long end = System.nanoTime();
        System.out.println( end );
    }

}
